package com.sanzang.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sanzang.entity.Heros;

/**
 * 测试访问 Redis 
 * @author sanzang
 *
 */
@RestController
@RequestMapping("/redis")
public class RedisController {	
	@Autowired
	private RedisTemplate redis;

	
	@RequestMapping("/strtest1")
	public String test() {
		// 存  取  json
		redis.opsForValue().set("biaoge", "facai");
		String val = (String)redis.opsForValue().get("biaoge");
		return "redis数据="+ val;
	}
	
	@RequestMapping("/strtest2")
	public String test2() throws JsonProcessingException {
		ObjectMapper mapper = new ObjectMapper();
		Heros temo = new Heros(99, "提莫", "快跑", "1", "ADC"); 		
		String jsonStr = mapper.writeValueAsString(temo);   // 对象转JSON 	 	
		// 存  取  json
		redis.opsForValue().set("biaoge", jsonStr);
		String val = redis.opsForValue().get("biaoge").toString();
		Heros obj = mapper.readValue(val, Heros.class);  // JSON 转 对象	
		return obj.toString();
	}
	
	@RequestMapping("/hashtest")
	public String test3() {		
		redis.opsForValue();  // string
		redis.opsForHash();   // hash
		redis.opsForList();   // list
		redis.opsForSet();    // set
		redis.opsForZSet();   // sort set 
		
		return "";
	}
}
